Name
@Target(allowedTargets = [AnnotationTarget.PROPERTY, AnnotationTarget.FIELD, AnnotationTarget.CLASS, AnnotationTarget.LOCAL_VARIABLE ] )
Name string for data generation or used as a "fallback" name implementation. Use this on the config class itself to translate the config name.
This annotation is repeatable, so can be used to provide lang values for any number of languages.
Author
fzzyhmstrs
Since
0.7.0
Parameters
value
the name string
lang
Default "en_us", the lang key applicable to this name
See also
Samples
import com.mojang.brigadier.LiteralMessage
import me.fzzyhmstrs.fzzy_config.FC
import me.fzzyhmstrs.fzzy_config.api.ConfigApi
import me.fzzyhmstrs.fzzy_config.fcId
import me.fzzyhmstrs.fzzy_config.util.FcText
import me.fzzyhmstrs.fzzy_config.util.FcText.bold
import me.fzzyhmstrs.fzzy_config.util.FcText.command
import me.fzzyhmstrs.fzzy_config.util.FcText.descLit
import me.fzzyhmstrs.fzzy_config.util.FcText.lit
import me.fzzyhmstrs.fzzy_config.util.FcText.text
import me.fzzyhmstrs.fzzy_config.util.FcText.tooltip
import me.fzzyhmstrs.fzzy_config.util.FcText.transLit
import me.fzzyhmstrs.fzzy_config.util.FcText.translate
import me.fzzyhmstrs.fzzy_config.util.FcText.underline
import me.fzzyhmstrs.fzzy_config.util.Translatable
import net.fabricmc.fabric.api.datagen.v1.provider.FabricLanguageProvider.TranslationBuilder
import net.minecraft.registry.RegistryKeys
import net.minecraft.registry.tag.TagKey
import net.minecraft.util.Identifier
import net.minecraft.util.math.ChunkPos
import java.util.*
fun main() {
//sampleStart
//Translations can be defined using the Name, Desc, and Prefix annotations in Translatable.
//The annotation is repeatable, to allow definition of multiple languages.
//Let's assume this field is part of "BoisConfig"
@Translatable.Name("My Setting") //en_us lang by default
@Translatable.Name("Mi Configuración", lang = "es_es")
@Translatable.Desc("True does this thing, false this other thing")
@Translatable.Prefix("Setting for this important thing")
var mySetting = true
//Then in datagen, these annotations will be automatically applied to the provided translation builder
fun buildTranslations(lang: String, builder: TranslationBuilder) {
ConfigApi.buildTranslations(BoisConfig::class, Identifier.of(FC.MOD_ID, "bois_config"), lang, true, builder::add)
}
//output will be:
val outputLang = """
{
"fzzy_config.bois_config.mySetting": "My Setting",
"fzzy_config.bois_config.mySetting.desc": "True does this thing, false this other thing",
"fzzy_config.bois_config.mySetting": "Setting for this important thing",
}
"""
//sampleEnd
}